Classical mosaic art is a great source of visual splendor dating back to ancient Greece and Rome. The impact of this art form remains enduring as mosaics continue to adorn large public spaces and add beautiful accents to private homes. Today, this ancient art remains a heavily labor-intensive exercise in both design and construction. It has stubbornly resisted automation, adding considerable cost to any project limiting its usage. Conditions are now suitable for introducing robotics and software tools to design, render, and manufacture mosaic artwork.
Typically, a mosaic design is based upon a pre-existing image, or an image that is created by an artist specifically for the mosaic design. Regardless, mosaic design applications or systems are available that automate portions or substantially all of the mosaic design process. The functional elements of such a mosaic design system 5 are shown in FIG. 1A. A mosaic designer can use the mosaic design system to assist with laying out individual mosaic tiles in a grid or free-form style that is a reasonable facsimile of the original image. The mosaic design system can automate certain steps of the mosaic creation process and can support manual intervention by the designer in the mosaic creation process.
Existing mosaic design systems are known that can operate using a two phase mosaic design process, in which the first phase requires the user to draw region boundaries and feature curves. Region boundaries segment the image into disjoint areas, and feature curves govern the tile flow in each region. The second phase then packs tiles along courses that run parallel to the feature curves. More specifically with reference to FIG. 1B, the process begins with the mosaic design system user drawing region boundary curves to segment the image into closed regions. The user can then draw one or more feature curves (shown in FIG. 1C) in each region to highlight a prominent feature that will define the flow, or andamento, within that area. Equidistant flow lines that run parallel to the feature curves are generated (FIG. 1D). The areas alongside the flow lines are courses that are then tiled (FIG. 1E) to form the mosaic geometry. Notice that the region boundaries serve to clip that region's flow lines so that the tile flow in one region can be independent of that in another. The region boundaries and feature curves are represented by Bézier curves that are drawn directly on a displayed image. Segmentation is accomplished by drawing the boundary curves in an off-screen image buffer as black cubic Bézier curves on a white background and extracting the connected components from the resulting image.
The mosaic design system 5 described above operates in a batch mode and employs an image-based distance transform algorithm to compute the set of parallel rows (i.e., flow lines) that lie about each feature curve. Prior to the system 5 calculating the position of any tile in a course, all of the region boundary and feature curves have to be placed in the mosaic image (first phase), and then the system operates to calculate the positions of all the tiles in each tile course as defined by the region boundary and feature curves (second phase) and then displays all of the tiles at once. For each pixel in the image, the algorithm computes a distance between that pixel and the closest point on a feature curve. By quantizing the resulting distance transform using the tile size, equidistant rows are derived that will be packed with tiles. This is accomplished by first creating an empty (white) image with an aspect ratio equal to that of the output mosaic and then drawing the region's feature curves in black. The distance transform of the image is calculated, quantized, and level sets are extracted that form the course boundaries. The number of quantization levels in the distance transform is a function of the tile size requested by the user.